home *** CD-ROM | disk | FTP | other *** search
- PAGE 55,79
- TITLE Copyright 1986 Nourse Gregg & Browne, Inc.
- SUBTTL INT10 - Lattice C interface to PC Video BIOS
- ;
- ; Interface for:
- ;
- ; Lattice C
- ; to
- ; the IBM BIOS video interupt
- ;
- ;-----------------------------------------*
- ;
- ; Call from your Lattice C looks like:
- ;
- ;
- ; union REGS regs;
- ;
- ;
- ; int10(®s);
- ;
- ;
- ;------------------------------------------*
- ;
- ; This interface is for the Lattice Small ONLY
- ;
- ; the ES register is loaded with a copy of
- ; the DS register so you don't use SEGREGS.
- ;
- ;
- ;------------------------------------------*
- ;
- PAGE
- INCLUDE \LC3\SM8086.MAC
-
- XREG STRUC
- AX1 DW ?
- BX1 DW ?
- CX1 DW ?
- DX1 DW ?
- SI1 DW ?
- DI1 DW ?
- XREG ENDS
-
- NAME INT10
- SETX
- PSEG
- DB ' Copyright 1986, Nourse Gregg + Browne, Inc. '
- BEGIN INT10
- PUSH BP ;SAVE BP
- MOV BP,SP ;ADDRESS THE STACK FRAME
- PUSH ES ;SAVE ES
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- MOV SI,[BP+X] ;INREGS STRUC POINTER
- MOV AX,DS ;GET DATA SEG ADDRESS
- MOV ES,AX ;PUT DS VALUE IN ES
- MOV AX,[SI].AX1 ;LOAD AX FROM INREGS
- MOV BX,[SI].BX1 ;LOAD BX FROM INREGS
- MOV CX,[SI].CX1 ;LOAD CX FROM INREGS
- MOV DX,[SI].DX1 ;LOAD DX FROM INREGS
- MOV DI,[SI].DI1 ;LOAD DI FROM INREGS
- MOV SI,[SI].SI1 ;LOAD SI FROM INREGS
- PUSH BP ;SAVE BP
- ; CLI ;DISABLE INTERUPTS !?!?!?!?!?!
- INT 10H ;INT TO BIOS VIDEO INTERUPT
- ; STI ;ENABLE INTERUPTS ....
- POP BP ;RESTORE BP
- PUSH SI ;SAVE SI
- MOV SI,[BP+X] ;INREGS STRUC POINTER
- MOV [SI].AX1,AX ;PUT AX IN INREGS
- MOV [SI].BX1,BX ;PUT BX IN INREGS
- MOV [SI].CX1,CX ;PUT CX IN INREGS
- MOV [SI].DX1,DX ;PUT DX IN INREGS
- MOV [SI].DI1,DI ;PUT DI IN INREGS
- POP AX ;GET SI VALUE IN AX
- MOV [SI].SI1,AX ;PUT SI IN INREGS
-
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- POP ES ;RESTORE ES
- POP BP ;RESTORE BP
- RET
-
- INT10 ENDP
- ENDPS
- END INT10
-